package com.brillilab.domain.vo.kit;

import com.brillilab.domain.po.space.PanelGridUsed;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 取用列表视图对象
 *
 * @author wmh
 */
@Data
public class KitUsageVo implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * 列表ID
     */
    private Long id;

    /**
     * 实验室ID
     */
    private Long labId;

    /**
     * 取用成员ID
     */
    private Long labMemberId;

    /**
     * 使用成员姓名
     */
    private String labMemberName;

    /**
     * 常用清单组ID
     */
    private Long regularUsageGroupId;

    /**
     * 实验ID
     */
    private Long experimentId;

    /**
     * 实验名称
     */
    private String experimentName;

    /**
     * 库存ID
     */
    private Long inventoryId;

    /**分类：1-试剂，2-样品*/
    private Integer classify;

    /**
     * 单成分/多成分 0-单成分 1-多成分
     */
    private Integer kitType;

    /**
     * 房间ID
     */
    @JsonIgnore
    private Long roomId;

    /**
     * 房间名
     */
    private String roomName;

    /**
     *设备序号
     */
    private Integer deviceIndex;

    /**
     * 设备ID
     */
    private Long deviceId;

    /**
     * 平面名
     */
    private String panelName;

    /**
     * 盒子颜色
     */
    private Integer boxColor;

    /**
     * 试剂kitBoxId
     */
    private Long kitBoxId;

    /**
     * 无分割试剂盒
     */
    private Boolean isSingleBox;

    /**
     * 盒子格子
     */
    private String boxGridName;

    /**
     * 盒子格子行
     */
    private String boxGridRow;
    /**
     * 盒子格子列
     */
    private Integer boxGridColumn;

    /**
     * 成分名
     */
    private String reagentName;

    /**
     * 试剂单位
     */
    private String unit;

    /**
     * 温区
     */
    private String zone;

    /**
     * 可用量
     */
    private BigDecimal amount;

    /**
     * 余量
     */
    private BigDecimal remain;

    /**
     * 取用量
     */
    private BigDecimal takeAmount;

    /**
     * 使用量
     */
    private BigDecimal useAmount;

    /**
     * 清单状态  1-未取用 2-未归还 3-已归还 删除为物理删除
     */
    private Integer state;

    /**
     * 该库存状态 0可用 1使用中 2 无 3 删除
     */
    private Integer isUse;

    /**
     * 使用人姓名
     */
    private String userName;

    /**说明书*/
    private String instruction;

    /**
     * 取用时间
     */
    private Date usageTime;

    /**
     * 归还时间
     */
    private Date returnTime;

    /**
     * 是否漏取漏还
     */
    private Boolean isMissing;

    private Integer isTakeMiss;

    private Integer isReturnMiss;

    private Integer takeSuccess;

    private Integer returnSuccess;

  /**创建时间*/
    @JsonIgnore
    private Date createTime;

    /**BoxPositionData*/
    private Integer panelColumns;

    private Integer panelRows;

    private List<PanelGridUsed> gridUsedList;

    private Long firstReagentTypeId;
}
